// pages/verify/verify.js
import {
  getVerify,
  reVerify
} from '../../request/api_type'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    phone: "",
    buttonCon: '发送验证码',
    buttonType: true,
    success: true, //轻提示开关
    toptipsText: "", //轻提示文本
    code: "",
    userCode: "",
    regbuttonType: true //自定按钮的样式和禁用状态
  },
  /* 自定按钮的点击事件 下一步的点击事件 */
  onbuttonTap() {
    reVerify({
      tel: this.data.phone,
      code: this.data.code
    }).then(res => {
      const {
        success
      } = res.data
      if (success) {
        const data = {
          tel: this.data.phone,
          code: this.data.code
        }
        wx.navigateTo({
          url: '/pages/setPass/setPass?data=' + JSON.stringify(data),
        })
      }
    })
  },
  /* 定时器 */
  setTime: {},
  /* 发送点击按钮 */
  onbuttonType() {
    var reTime = 120
    /* 短信请求 */
    getVerify({
      tel: this.data.phone
    }).then(res => {
      const {
        code,
        message,
        success
      } = res.data
      if (success) {
        /* 
          考虑两种情况 1、用户自己输入 2、本机自动填写
        */
        this.setData({
          toptipsText: message,
          success: false, //短信发送成功的提示
          code, //用户输入的验证码，在本机时自动填入
          regbuttonType: false,
          userCode: code //系统保存的验证码
        })
      } else {
        this.setData({
          toptipsText: message,
          success: false, //短信发送成功的提示
        })
      }
      setTimeout(() => {
        this.setData({
          success: true //关闭短信发送成功的提示
        })
      }, 1500);
    })
    this.setData({
      buttonType: false,
      buttonCon: `重新发送(${reTime})`
    })
    /*倒计时 */
    this.setTime = setInterval(() => {
      if (reTime <= 0) {
        clearInterval(this.setTime)
        this.setData({
          buttonType: true,
          buttonCon: `重新发送`
        })
      } else {
        reTime--
        this.setData({
          buttonCon: `重新发送(${reTime})`
        })
      }
    }, 1000)
  },
  /* 输入验证码事件 */
  verifyInput(e) {
    this.setData({
      code: e.detail.value
    })
    if (e.detail.value.length === 4) {
      this.setData({
        regbuttonType: false
      })
    } else {
      this.setData({
        regbuttonType: true
      })
    }
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const {
      phone
    } = options
    this.setData({
      phone
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})